package com.cy.pet.diary.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @description:
 * @author: LiuXingYu
 * @date: 2021/10/8 10:05
 */
@Component  //将对象交给Spring容器管理
public class MyMetaObjectHandler implements MetaObjectHandler {

    //当数据库做新增操作时,自动调用  API调用 不需要问为什么
    //metaObject对象 是MP自动填充的配置 有默认行为
    //自动填充实现: 能否实现user.setStatus(true); 不正确的
    //原因: 将公共的部分进行封装(created/updated)  status 业务数据
    @Override
    public void insertFill(MetaObject metaObject) {
        //获取当前时间
        Date date = new Date();
        this.setFieldValByName("created", date, metaObject);
        this.setFieldValByName("updated", date, metaObject);
    }
    //当数据库做修改操作时,自动调用
    @Override
    public void updateFill(MetaObject metaObject) {
        //获取当前时间
        Date date = new Date();
        this.setFieldValByName("updated", date, metaObject);
    }
}
